package com.example;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

// 这个是第一个作业使用的示例，不需要修改
// 定义一个处理学生信息的Servlet
public class StudentServlet extends HttpServlet {
    // 存储学生信息的列表
    private List<Student> students;

    @Override
    public void init() throws ServletException {
        // 初始化学生集合
        // 创建一个新的ArrayList来存储学生对象
        students = new ArrayList<>();
        // 添加几个示例学生对象
        students.add(new Student("张三", 20, "计算机科学与技术"));
        students.add(new Student("李四", 22, "软件工程"));
        students.add(new Student("王五", 21, "智能控制"));
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置响应内容类型为UTF-8，以支持中文字符
        response.setContentType("text/html; charset=UTF-8");
        response.setCharacterEncoding("UTF-8");

        // 获取请求参数中的学生姓名
        String studentName = request.getParameter("name");

        // 检查请求参数是否为空
        if (studentName == null || studentName.isEmpty()) {
            // 如果请求参数为空，提示用户如何正确输入
            PrintWriter out = response.getWriter();
            out.println("请在URL中这样输入: http://localhost:8080/student?name=张三");
            return;
        }

        // 查找学生
        Student foundStudent = null;
        // 遍历学生列表，查找匹配的学生
        for (Student student : students) {
            if (student.getName().equalsIgnoreCase(studentName)) {
                foundStudent = student;
                break;
            }
        }

        // 获取PrintWriter对象，用于向客户端发送响应
        PrintWriter out = response.getWriter();

        // 如果找到学生，输出学生信息
        if (foundStudent != null) {
            out.println("<h1>学生信息：</h1>");
            out.println("<p>名字: " + foundStudent.getName() + "</p>");
            out.println("<p>年龄: " + foundStudent.getAge() + "</p>");
            out.println("<p>专业: " + foundStudent.getMajor() + "</p>");
        } else {
            // 如果未找到学生，输出提示信息
            out.println("没有发现该学生：" + studentName);
        }
    }
}
